Understanding The SoftwareShield System

Developing Applications Using The SoftwareShield System > Introduction to the SoftwareShield System > Understanding The SoftwareShield System

## Understanding The SoftwareShield System

To understand the SoftwareShield System you must first understand how license enforcement works.

At run-time, license enforcement works through a cooperative effort between your application, the SoftwareShield ClientProtector component (which you must redistribute with your applications), and the License File that you create for the application.

The (main, distributed) License File is a compressed and encrypted file which contains all the licensing information necessary to enforce itself on your application. The SoftwareShield ClientProtector component is a COM server .dll (named SSCProt.dll and SSCProtD.dll) which you must distribute with your applications and register on the clients machine in your applications installer package. The ClientProtector is the component through which your application interacts with the License File that you must distribute also.

License Files you develop are specific to a particular application and (often) specific even to different releases. The ClientProtector is an in-proc COM server used by all applications that use the SoftwareShield System regardless of the version of license it uses. Your application must have a small set of information in order to start the ClientProtector and subsequently use it to enforce the license, including encryption passwords used to encrypt the file and other sub-components of the file (explained later in detail), the name of the license file it should use, and a code representing what FingerPrint elements to use to identify an authorized system (if any).

You develop your licenses using the SoftwareShield License Manager application. The License Manager is a full features Windows application that allows you to design and implement any and all license features your application needs. The License Manager also handles compiling License Projects into distributed licenses which you then ship with your application. When you create a distributed license, the License Manager also creates a programming notes file which simplifies your job of incorporating the license into your application. The License Manager even writes several language versions of the exact code you need in the programming notes file which you can copy into your development environment to initialize and start the ClientProtector component.

Once you have designed and developed the License, tested and debugged your application (and its licensing features), and distributed your application, the license, and the ClientProtector component, you are ready to use the Activation Code Generator to control your application through its license.

Refer to the example scenario to help you get a better understanding of how the system works.

Also refer to the Activation Diagram to see the different methods of activation.

### What About People Who Try To Cheat the System?

There are numerous safeguards built into the SoftwareShield System that ensure that your client, (and hackers), will have an extremely difficult time defeating the system if they try. There are several hidden "alias files" that ensure that the Main License file has not been tampered with, some of these files even use advanced steganographic technology to embed their license information inconspicuously inside the individual pixels of actual images (bitmaps) so that they look completely unchanged to the human observer.

There are several checks to ensure that the user can not defeat expire dates by rolling his or her system clock back or by starting the install process with a system date that is inconsistent with the license date. Some Activation Codes themselves expire so that they must be used within a "shelf-life" or they cease to work on any system whatsoever. Some codes (single-use) can be used only once on a single system no matter what and others can be used over and over. There is advanced tamper-resistance technology that (optionally) detects if the program is being watched by kernel-mode debuggers, or that someone is trying to de-compile it using hacker tools like SoftICE; your program will simply shutdown. Un-installing and reinstalling your program will not work either to defeat the system due to the special alias files that are left in inconspicuous files and registry keys on the clients computer, (even after an un-install).

SoftwareShield ensures that you can feel confident that the licensing and copy protection of your system can be left to us and you can focus on what you do best - develop good software. Let SoftwareShield worry about protecting it. (See: How Strong is the SoftwareShield System?)